const BASE_URL = "https://shsh.vxmeng.com/"

// 通过export向外暴露一个方法，方法名叫myRequest,调用myRequest方法时会向方法中传递一个对象options
export const myRequest = (options) => {
	// #ifdef MP-WEIXIN
	options.data.source = 1
	// #endif
	// #ifndef MP-WEIXIN
	options.data.source = 2
	// #endif
	return new Promise((resolve, reject) => { // 异步处理的封装通过promise比较好，并且要return出去，
		uni.request({ // 在回调函数中处理异步请求
			url: BASE_URL + options.url, // 将接口地址分为两部分，这样如果域名改变了好维护，接口地址从options中获取
			method: options.method || 'POST', // 方法从options中获取，如果没有传入method，则默认为GET，
			header: {
				token: uni.getStorageSync('token') ? uni.getStorageSync('token') : "",
				// language:uni.getStorageSync('onLanguage')?uni.getStorageSync('onLanguage'):"zh-Hans"
				// 'Content-Type': 'text/plain; charset=utf-8'
			},
			data: options.data || {}, // data从options中获取，如果没有传入data， 则默认一个空对象
			success: (res) => {
				// 用箭头函数，res是返回来的数据
				// console.log(res)
				if (res.data.code != 1) {
					// 如果请求失败，则给一个提示
					if (res.data.code == 401) {
						uni.setStorageSync('token','')
						// #ifdef MP-WEIXIN || MP-TOUTIAO || MP-ALIPAY
						uni.navigateTo({
							url: "/pages/login/loginWx"
						})
						// #endif
						// #ifndef MP-WEIXIN || MP-TOUTIAO || MP-ALIPAY
						uni.reLaunch({
							url: "/pages/login/codeLogin"
						})
						// #endif
					} else {
						uni.showToast({
							icon: "none",
							title: res.data.msg
						})
					}
				}
				resolve(res.data) //如果请求成功，调用resolve返回数据
			},
			fail: (err) => { // err 是返回来的错误信息
				uni.showToast({ // 给一个消息提示
					icon: "none",
					title: '请求接口失败！'
				})
				reject(err + BASE_URL) // 调用reject方法把错误消息返回出去
			}

		})
	})
}